Skip to content

04 新手练兵 - Linux 基础指令 -1

ls 显示目录中文件及其属性信息

  • ls 命令来自英文单词 list 的缩写,中文译为“列出”,其功能是显示目录中的文件及其属性信息,是最常使用的 Linux 命令之‍一。
  • 语法格式:ls 参数 文件名

常见参数

参数描述
-a显示所有文件及目录(all)
-A不显示当前目录和父目录(almost-all)
-color以彩色显示信息(color)
-d显示目录自身的属性信息(directory)
-i显示文件的 inode 属性信息(inode)
-l显示文件的详细属性信息(long format)
-m以逗号为间隔符,水平显示文件信息(comma-separated)
-r依据首字母将文件以相反次序显示(reverse)
-R递归显示所有子文件(recursive)
-S依据内容大小将文件排序显示(size)
-t依据最后修改时间将文件排序显示(time)
-X依据扩展名将文件排序显示(extension)

常用命令

命令描述
ls显示当前目录下的内容
ls -l显示当前目录下内容的详细信息
ls -lals -l 输出内容与格式基本相同,a 指令使得多输出了隐藏文件信息
ls -lhals -l 输出内容与格式基本相同,h 指令将文件大小转换为人类适读单位
ls -ltls -l 输出内容与格式基本相同,t 指令按时间排序
ls -R递归显示当前目录中的所有文件和子目录
ls -l [dir_name]显示 [dir_name] 目录下的详细信息
  • ls 列出当前目录下的文件和目录。
  • ls -a 列出当前目录下的所有文件和目录,包括隐藏文件(以.开头的文件)。
  • ls -l 以长格式列出当前目录下的文件和目录的详细信息,包括权限、所有者、大小、最后修改日期等。
  • ls /etc 列出 /etc 目录下的文件和目录。
  • ls -i /etc 列出 /etc 目录下的文件和目录,并显示每个文件的 inode 号。
  • ls /dev/sd* 列出 /dev 目录下所有以 sd 开头的设备文件,通常这些是硬盘设备。
  • ls -Sl /etc 以长格式列出 /etc 目录下的文件和目录,并按文件大小排序,-S 选项表示按文件大小排序,-l 选项表示长格式输出。

cd 切换当前目录

  • cd 命令来自英文词组 change directory 的缩写,其功能是更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前使用者的家目‍录。
  • 语法格式:cd 参数 目录名

常用参数

命令和参数描述
cd -L [链接路径]-L 选项将遵循符号链接,并切换到链接指向的目录
cd -P [链接路径]-P 选项将切换到符号链接指向的实际物理目录,而不是链接本身
cd ~切换到当前用户的主目录(家目录)
cd ..切换到当前目录的父目录
cd --切换到之前所在的目录(如果之前使用过 cd 命令的话)

常用命令

命令描述
cd通常不这么使用,功能上等同于 cd ~,即切换到自己的 home 目录
cd ~切换到自己的 home 目录
cd .通常不这么使用,表示切换到当前目录,即不进行目录切换
cd ..切换到上一级目录
cd ../..切换到上上一级目录。
cd -切换到上一次的目录
cd [dir_name]切换到特定目录 [dir_name]
  • cd /Dir - 切换当前工作目录到 /Dir
  • cd ~ - 切换当前工作目录到当前用户的主目录
  • cd .. - 切换当前工作目录到当前目录的父目录
  • cd - - 切换当前工作目录到之前的工作目录
  • mkdir foo && cd "$_" - 创建一个名为 foo 的新目录,如果创建成功,则切换到该目录。$_ 是一个特殊变量,它保存最后一个命令的最后一个参数的值,在这里是 foo

cp 复制文件或文件夹

  • cp 命令来自英文单词 copy 的缩写,中文译为“复制”,其功能是复制文件或目录。
  • cp 命令能够将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。
    • -r 参数用于递归操作,复制目录时若忘记添加则会直接报错;
    • -f 参数则用于当目标文件已存在时会直接覆盖而不再询问。这两个参数尤为常用。
  • 语法格式:cp 参数 源文件名 目标文件名

常用参数

参数描述
-a功能等价于 -pdr 参数组合,即保留属性信息、递归复制、复制链接文件(archive)
-b覆盖目标文件前先进行备份(backup)
-d复制链接文件时,将目标文件也建立为链接文件(no-dereference)
-f若目标文件已存在,则会直接覆盖(force)
-i若目标文件已存在,则会询问是否覆盖(interactive)
-l对源文件建立硬链接,而非复制文件(link)
-p保留源文件或目录的所有属性信息(preserve)
-r递归复制所有子文件和子目录(recursive)
-s对源文件建立软链接,而非复制文件(symbolic link)
-v显示执行过程详细信息(verbose)

常用命令

命令描述
cp [file] [new_file][file] 拷贝生成 [new_file],功能上等于 cp -f
cp -r [dir] [new_dir][dir] 目录及其所有内容递归拷贝生成 [new_dir]
cp -i [file] [new_file][file] 拷贝生成 [new_file],若 [new_file] 存在则询问是否覆盖
cp -f [file] [new_file][file] 拷贝生成 [new_file],若 [new_file] 存在则直接覆盖
cp -b [file] [new_file][file] 拷贝生成 [new_file],若 [new_file] 存在则备份原 [new_file]
cp -f --backup=numbered [file] [file][file] 进行备份,备份文件后缀为数字

NOTE

CentOS 8 系统中的 cp 命令默认带有 -i 选项,这意味着如果目标文件存在,cp 命令会提示用户是否覆盖。这有助于防止意外覆盖文件。

  • cp File1.cfg File2.cfg - 将 File1.cfg 文件复制为 File2.cfg
  • cp -r Dir1 Dir2 - 将 Dir1 目录及其所有内容递归复制到 Dir2
  • cp -a File1.cfg File2.cfg - 将 File1.cfg 文件复制为 File2.cfg,并保持文件的所有属性。
  • cp -f File1.cfg /etc - 强制将 File1.cfg 文件复制到 /etc 目录,如果目标文件已存在,则覆盖它。
  • cp File1.cfg File2.cfg /etc - 将 File1.cfgFile2.cfg 文件都复制到 /etc 目录,如果目标文件已存在,则询问是否覆盖。

mv 移动或改名文件

  • mv 命令来自英文单词 move 的缩写,中文译为“移动”,其功能与英文含义相同,能够对文件进行剪切和重命名操作。
  • 这是一个被高频使用的文件管理命令,我们需要留意它与复制命令的区别。cp 命令是用于文件的复制操作,文件个数是增加的,而 mv 则为剪切操作,也就是对文件进行移动(搬家)操作,文件位置发生变化,但总个数并无增‍加。
  • 在同一个目录内对文件进行剪切的操作,实际上应理解成重命名操作。
  • 语法格式:mv 参数 源文件名 目标文件名

常用参数

参数描述
-b覆盖前为目标文件创建备份(backup)
-f强制覆盖目标文件而不询问(force)
-i覆盖目标文件前询问用户是否确认(interactive)
-n不要覆盖已有文件(no-clobber)
-u当源文件比目标文件更新时,才执行覆盖操作(update)
-v显示执行过程详细信息(verbose)
-Z设置文件安全上下文(context)
--help显示帮助信息(help)
--version显示版本信息(version)

常用命令

命令描述
mv [src_file] [dest_file][src_file] 重命名为 [dest_file]
mv -i [src_file] [dest_file]在覆盖 [dest_file] 文件前进行询问
mv -f [src_file] [dest_file]如果存在 [dest_file] 文件时,直接覆盖
mv [src_file] [dir_name][src_file] 移动到特定文件夹 [dir_name]
mv [src_file] ..[src_file] 文件移动到上一级目录
mv [dir_name]/* .[dir_name] 文件夹下的所有内容移动到当前文件夹下

NOTE

CentOS 8 系统中的 mv 命令默认带有 -i 选项,这意味着如果目标文件存在,mv 命令会提示用户是否覆盖。这有助于防止意外覆盖文件。

  • mv File1.cfg File2.cfg - 将 File1.cfg 文件重命名为 File2.cfg
  • mv File2.cfg /etc - 将 File2.cfg 文件移动到 /etc 目录。
  • mv Dir1 /etc/Dir2 - 将 Dir1 目录移动到 /etc 目录下并重命名为 Dir2
  • mv -f /home/* . - 强制将 /home 目录下的所有文件和目录移动到当前目录,如果目标位置有同名文件或目录,则覆盖它们。

cat 在终端设备上显示文件内容

  • cat 命令来自英文词组 concatenate files and print 的缩写,其功能是在终端设备上显示文件内容。
  • 在 Linux 系统中有很多用于查看文件内容的命令,例如 moretailhead 等,每个命令都有各自的特点。
  • cat 命令适合查看内容较少的纯文本文件。对于内容较多的文件,使用 cat 命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按 Ctrl + C 组合键中断命令执行,所以对于大文件,干脆用 more 命令‍显示吧。
  • 语法格式:cat 参数 文件名

常用参数

选项描述
-A等价于 -vET 参数组合(show-all)
-b显示行数(空行不编号)(number-nonblank)
-e等价于 -vE 参数组合(equivalent)
-E每行结束处显示 $ 符号(show-ends)
-n显示行数(空行也编号)(number)
-t等价于 -vT 参数组合(equivalent)
-T将 TAB 字符显示为 ^I 符号(show-tabs)
-v使用 ^M- 引用,LFD 和 TAB 除外(show-nonprinting)
--help显示帮助信息(help)
--version显示版本信息(version)

常用命令

命令描述
cat [file][file] 文件的内容打印到显示器上
cat -n [file][file] 文件的行号和内容打印到显示器上
cat -n [src_file] > [dest_file][src_file] 文件的行号和内容输出至 [dest_file]
cat [src_file_1] [src_file_2] > [dest_file]将文件 [src_file_1][src_file_2] 的内容输出到 [dest_file]
cat /dev/null > [dest_file]清空 [dest_file] 文件内容
  • cat anaconda-ks.cfg - 显示 anaconda-ks.cfg 文件的内容。

  • cat -n anaconda-ks.cfg - 显示 anaconda-ks.cfg 文件的内容,并显示行号。

  • cat /dev/null > anaconda-ks.cfg - 清空 anaconda-ks.cfg 文件的内容。

  • bash
    cat > anaconda-ks.cfg << EOF
    Hello,World
    Linux!~
    EOF

    将标准输入的内容(在这里是 "Hello,World" 和 "Linux!~" 两行文本)重定向到 anaconda-ks.cfg 文件中。

  • cat /dev/cdrom > rhel.iso - 尝试将 /dev/cdrom 设备的内容重定向到 rhel.iso 文件中,这通常用于创建 ISO 镜像文件的副本。注意,这个命令可能需要适当的权限,并且只有在 /dev/cdrom 设备被正确挂载并且是可读的 CD 或 DVD 时才会成功。

head 显示文件开头的内容

  • head 命令的功能是显示文件开头的内容,默认为前 10 行。
  • 语法格式:head 参数 文件名

常用参数

参数描述
-c [chars]设置显示头部内容的字符数(bytes)
-n [lines]设置显示行数(lines)
-q不显示文件名的头信息(quiet, silent)
-v显示文件名的头信息(verbose)
--help显示帮助信息(help)
--version显示版本信息(version)

常用命令

命令描述
head -n [lines] [file]查看文件 [file] 的前 [lines] 行内容
head -c [chars] [file]查看文件 [file] 的前 [chars] 个字符
head [file]查看文件 [file] 的前 10 行内容,等同于 head -n 10 [file]
  • head -n 10 File.cfg - 显示 File.cfg 文件的前 10 行内容。
  • head -n 5 File.cfg - 显示 File.cfg 文件的前 5 行内容。
  • head -c 20 File.cfg - 显示 File.cfg 文件的前 20 个字符。

tail 查看文件尾部内容

  • tail 命令的功能是查看文件尾部内容,例如默认会在终端界面上显示指定文件的末尾 10 行,如果指定了多个文件,则会在显示的每个文件内容前面加上文件名来加以区分。
  • 高阶玩法的 -f 参数的作用是持续显示文件的尾部最新内容,类似于机场候机厅的大屏幕,总会把最新的消息展示给用户,对阅读日志文件尤为适合,再也不需要手动刷新了。
  • 语法格式:tail 参数 文件名

常用参数

参数描述
-c [chars]设置显示文件尾部的字符数(bytes)
-f持续显示文件尾部最新内容(follow)
-n [lines]设置显示文件尾部的行数(lines)
--pid [PID]当指定 PID 的进程结束时,自动退出命令(pid)
--retry当文件无权限访问时,依然尝试打开(retry)
--help显示帮助信息(help)
--version显示版本信息(version)

常用命令

命令描述
tail -n [lines] [file]查看文件 [file] 的最后 [lines] 行内容
tail -c [chars] [file]查看文件 [file] 的最后 [chars] 个字符
tail -f [file]持续跟踪 [file] 文件的增长信息
tail [file]查看文件 [file] 的最后 10 行内容,等同于 tail -n 10 [file]
  • tail File.cfg - 显示 File.cfg 文件的最后 10 行内容。
  • tail -n 5 File.cfg - 显示 File.cfg 文件的最后 5 行内容。
  • tail -c 30 File.cfg - 显示 File.cfg 文件的最后 30 个字符。
  • tail -f File.cfg - 动态显示 File.cfg 文件的最后 10 行内容,并且当文件内容更新时,实时追加显示新内容。这个命令通常用于监控日志文件的实时更新。